#pragma once
PBBIMCORE_TYPEDEFS(PB%Class%Manager)

BEGIN_PBBIM_CORE_NAMESPACE

/*=================================================================================**//**
* @bsiclass                                     Y.Dong                          %CreateTime%
+===============+===============+===============+===============+===============+======*/
class PB%Class%Manager
{
private:
    PB%Class%P           m_curr%Class%;
    bvector<PB%Class%>   m_%Class%List;

public:
    PBBIMCORE_EXPORT PB%Class%Manager();
    PBBIMCORE_EXPORT ~PB%Class%Manager();
    PBBIMCORE_EXPORT static PB%Class%ManagerR Get();
    PBBIMCORE_EXPORT int Get%Class%Count();

    PBBIMCORE_EXPORT PB%Class%P GetCurrent%Class%() const;
    PBBIMCORE_EXPORT StatusInt SetCurrent%Class%(WStringCR %Class%Name);

    PBBIMCORE_EXPORT bool Add%Class%(PB%Class%R %Class%, bool override = false);
    PBBIMCORE_EXPORT bool Delete%Class%ByName(WStringCR %Class%Name);
    PBBIMCORE_EXPORT PB%Class%P get%Class%ByName(WStringR %Class%Name);
    PBBIMCORE_EXPORT StatusInt LoadAll%Class%s();

    PBBIMCORE_EXPORT StatusInt GetAll%Class%s(bvector<PB%Class%> &%Class%List);
    PBBIMCORE_EXPORT StatusInt Clear%Class%();
    //PBBIMCORE_EXPORT BentleyApi::BeSQLite::EC::ECInstanceKey Remove%Class%(WString %Class%Name);

};

END_PBBIM_CORE_NAMESPACE
